package com.ctsi.hsph.spi;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * SaTokenInfo
 * <p>
 * 封装事件中枢认证接口获取的 Token 及相关登录信息，包含 token 本体、登录状态、用户ID、超时等属性。
 * </p>
 * 
 * @author yourname
 */
@Data
@ApiModel(description = "Token信息对象，包含token及登录状态等信息")
public class SaTokenInfo {

    /**
     * token名称
     */
    @ApiModelProperty(value = "Token名称", example = "Access-Token")
    private String tokenName;

    /**
     * token值
     */
    @ApiModelProperty(value = "Token的值", example = "ddd556c3-97ad-41b0-9fb5-e94371e24d11")
    private String tokenValue;

    /**
     * 是否已登录
     */
    @ApiModelProperty(value = "是否登录", example = "true")
    private Boolean isLogin;

    /**
     * 登录ID，通常为用户唯一标识
     */
    @ApiModelProperty(value = "登录ID", example = "2095431982")
    private String loginId;

    /**
     * 登录类型
     */
    @ApiModelProperty(value = "登录类型", example = "app")
    private String loginType;

    /**
     * token超时时间（单位：秒）
     */
    @ApiModelProperty(value = "token超时时间（秒）", example = "3600")
    private Long tokenTimeout;

    /**
     * session超时时间（单位：秒）
     */
    @ApiModelProperty(value = "session超时时间（秒）", example = "3600")
    private Long sessionTimeout;

    /**
     * token会话超时时间（单位：秒）
     */
    @ApiModelProperty(value = "token会话超时时间（秒）", example = "-2")
    private Long tokenSessionTimeout;

    /**
     * token活跃超时时间（单位：秒）
     */
    @ApiModelProperty(value = "token活跃超时时间（秒）", example = "-1")
    private Long tokenActiveTimeout;

    /**
     * 登录设备信息
     */
    @ApiModelProperty(value = "登录设备", example = "default-device")
    private String loginDevice;

    /**
     * 自定义标签
     */
    @ApiModelProperty(value = "标签", example = "null")
    private String tag;
}